// #define _CRT_SECURE_NO_WARNINGS
// //所有代码
// /****0*****************************************************/
// *日期：2024.3.28
// *内容：
// *
// *
// *
// *
// /****1*****************************************************/
// #include "stdio.h"
// int main()
// {

// 	printf("Trying my best to learn C langugage");

// 	return 0;
// }

// /****2*****************************************************/
// #include "stdio.h"
// int main()
// {
// 	int i = 32;
// 	for (i = 32; i < 128; i++)
// 	{

// 		printf("%c", i);
	
// 	}

// 	return 0;
// }

// /****3*****************************************************/
// #include "stdio.h"
// int nums[10];
// int MAX;
// int i = 0, sum = 0;
// int main()
// {
// 	//输入
// 	printf("Please input 10 nums:");
// 	for (i = 0; i < 10; i++)
// 	{
// 		scanf("%d", &nums[i]);
// 	}
// 	//比较,求均值
// 	MAX = nums[0];

// 	for (i = 0; i < 10; i++)
// 	{
// 		if (nums[i] > MAX)
// 		{
// 			MAX = nums[i];
// 		}
// 		sum += nums[i];
// 	}

// 	//输出
// 	printf("The MAX num in those nums is %d\n\a", MAX);
// 	printf("The summation of those nums is %d", sum);

// 	return 0;

// }
// /****4*****************************************************/
//
//#include "stdio.h"
//int i = 33;
//int main()
//{
//		printf("%c\n", i);
//		i++;
//		printf("%c\n", i);
//		i++;
//		printf("%c\n", i);
//		i++;
//		printf("%c\n", i);
//		i++;
//		printf("%c\n", i);
//		i++;
//		printf("%c\n", i);
//
//	return 0;
//}
// /****5*****************************************************/

// #include "stdio.h"

// int MAX(int x,int y);//函数声明,自定义函数再主函数之后，需要告诉编译器将它作为函数调用处理
// int main()
// {
// 	//输入两个数
// 	int m, n;
// 	printf("please input two nums:  ");
// 	scanf(" %d", &m);
// 	scanf(" %d", &n);

// 	//调用函数比较大小
// 	MAX(m,n);//实参m,n分别传给形参x,y
// 	//返回最大值，打印输出
// 	printf("THE max num of these two nums is %d",MAX(m,n));//返回值通过函数名max 带回到main函数里去

// 	return 0;
// }

// int MAX(int x,int y)
// {
// 	int max = 0;

// 	if (x >= y)
// 	{
// 		max = x;
// 	}
// 	else if (x <= y)
// 	{
// 		max = y;
// 	}
// 	return (max);//指定参数值作为函数值返回到main（）函数中
// }

// /****6*****************************************************/

// #include "stdio.h"
// int i = 0;
// int arr[] = {0};

// int MAX(int x,int y,int w);//函数声明,自定义函数再主函数之后，需要告诉编译器将它作为函数调用处理
// int main()
// {
// 	//输入三个数,用数组存储

// 	printf("please input three nums:  ");
// 	for (i = 0; i < 3; i++)
// 	{
		
// 		scanf(" %d,%d,%d", &arr[i]);
		
// 	}
// 	//调用函数比较大小
// 	MAX(arr[0],arr[1],arr[2]);//实参m,n分别传给形参x,y
// 	//返回最大值，打印输出
// 	printf("THE max num of these three nums is %d",MAX(arr[0],arr[1],arr[2]));//返回值通过函数名max 带回到main函数里去

// 	return 0;
// }

// int MAX(int x,int y,int w)
// {	//采用数组的方法比较大小
// 	int max = 0;
// 	for (i = 0; i < 3; i++)
// 	{
// 		max = arr[0];
// 		if (arr[i] > max)
// 		{

// 			max = arr[i];

// 		}
// 	}
	
// 	return (max);//指定参数值作为函数值返回到main（）函数中
// }
// /****7*****************************************************/
// 简单功能复杂化
// #include "stdio.h"
// int i = 0;
// int j = 0, k = 0;
// int l = 0, m = 0;
// int p = 0, q = 0;

// int main()
// {
// 	for (i = 0; i <4; i++)
// 	{
// 		printf("%c%c%c%c%c%c*****\n", j, k, l, m, p, q);
// 		for (j = 0; j < 32; j += 32)
// 		{
// 			for (k = 0; k < 32; k += 32)
// 			{
// 				;
// 			}
// 		}
	
// 		if (i==1)
// 		{
// 			for (l = 0; l < 32; l += 32)
// 			{
// 				for (m = 0; m < 32; m += 32)
// 				{
// 					;
// 				}
// 			}
		
// 		}

// 		else if(i==2)
// 		{
// 				for (p = 0; p < 32; p += 32)
// 				{
// 					for (q = 0; q < 32; q += 32)
// 					{
// 						;
// 					}
// 				}
		
// 		}
		
// 	}
// 	return 0;
// }
// /****8*****************************************************/
// #include"stdio.h"
// long sum = 0L;
// long num;
// int status;

// int main()
// {
// 	printf("please input an integer num");
// 	printf("(q to quit): ");
// 	//status=scanf("%ld",&num);
	
// 	while ( scanf("%ld", &num)==1)//花括号内是循环体，复合语句视为一条语句
// 	{
// 		sum += num;
// 		printf("please input an integer num");
// 		printf("(q to quit): ");
// 		//status = scanf("%ld", &num);

// 	}

// 	printf("the sum 0f these nums  is %d",sum);

// 	return 0;
// }
// /****9*****************************************************/
// #include "stdio.h"
// //可行性没问题，但是可读性不如书本P151
// float cold_day=0.0;
// float temp = 0;
// float sum = 0;
// float percentage = 0.0;

// int main(void)
// {

// 	//输入
// 	printf("please input a temperature:");
// 	printf("q to quit\n");

// 	while (1==scanf("%f", &temp))
// 	{
// 		printf("please input a temperature:");
// 		printf("q to quit\n");

// 		if (temp < 0)
// 		{

// 			cold_day += 1;

// 		}
// 		sum += 1;

// 	}

// 	//输出

// 	percentage =cold_day / sum;

// 	printf("The total temperature numbers had been inputed is %.1f \n",sum);
// 	printf("The day which temperature under 0 degree is %.3f %c ", percentage*100.0,37);

// 	return 0;

// }

// /***10*****************************************************/
// #include "stdio.h"

// #define space ' '
// //为什么输入字符串才全部输出？
// //字符串是输入到缓存区，按下回车键getchar（）才一个一个读取字符
// int main(void)
// {
// 	char ch;
// 	//printf("please input an character:");
// 	ch = getchar();
// 	while (ch != '\n')
// 	{
// 		if (ch == space)
// 		{
// 			putchar(ch);
// 		}
// 		else
// 		{
// 			putchar(ch + 1);
// 		}
// 		//printf("\nplease input an character:");

// 		ch = getchar();
// 	}

// 	putchar(ch);

// 	return 0;
// }
// /***11*****************************************************/
// //二维数组题
// #include"stdio.h"
// int x, y;//x行，y列
// double arr[3][5] = { 0 }; /*{
// 	{1,1,1,1,1},
// 	{2,2,2,2,2},
// 	{3,3,3,3,3},
// };*/
// int * p;

// double ave_all(double* p, int n)
// {
// 	int x = 0, y = 0;
// 	int sum = 0;
// 	int AVE = 0;
// 	for (x = 0; x < 3; x++)
// 	{
// 		for (y = 0; y < 5; y++)
// 		{
// 			sum += *p++;

// 		}
// 	}
// 	AVE = sum / 15.0;


// 	return AVE;
// }
// int ave_each(double* p)
// {
// 	double sum_each = 0;
// 	double each[3] = { 0 };
// 	for (x = 0; x < 3; x++)
// 	{
// 		sum_each = 0;
// 		for (y = 0; y < 5; y++)
// 		{
// 			sum_each +=  *((p+x)+y);
// 		}
// 		each[x] = sum_each / 5;
// 	}


// 	return each;
// }

// double ave_all(double** p1)
// {
// 	double x = 0.0, y = 0.0;
// 	double sum_all = 0;

// 	for (x = 0; x < 3; x++)
// 	{

// 		for (y = 0; y < 5; y++)
// 		{
// 			sum_all += *p ;
// 		}

// 	}


// 	return sum_all;
// }

// int main()
// {
	
// 	//输入一个二维数组
// 	printf("Please Input 15 nums:\n");
	
// 	for (x = 0; x < 3; x++)
// 	{
// 		for(y=0;y<5;y++)
// 			{
// 			int f = scanf("%lf", &arr[x][y]);

// 			}
// 	}
	
// 	// 计算每组的平均值
// 	double* p1;
//    p1 = ave_each( * arr);
// 	printf("The average of each group:\n");

// 	for (x = 0; x < 3; x++)
// 	{
// 		printf("  %.1lf   \n",*(p1+x));
// 	}
// 	//计算15个数的平均值
	

// 	//15个数当中最大值
	
// 	//输出
// 	printf("\nThe nums you have input :\n");
// 	for (x = 0; x < 3; x++)
// 	{
// 		for (y = 0; y < 5; y++)
// 		{
// 			printf("       %.1lf", arr[x][y]);
// 			if (y  == 4)
// 			{
// 				printf("\n");
// 			}
// 		}
		
// 	}

// 	return 0;

// }
///***12*****************************************************/
// #include"stdio.h"

// int main()
// {


// 	return 0;
// }
///***13*****************************************************/
////二维数组题,在一个文件下仅main()函数实现，不用传参调用函数

#include "stdio.h"
//测试数组
double arr[3][5] =
{ 

{ 1.0 , 2.0, 3.0, 4.0, 5.0},
{ 6.0 , 7.0, 8.0, 9.0,10.0},
{11.0 ,12.0,13.0,14.0,15.0},

};

//四个待求参数
double sum = 0.0,ave_all=0.0;
double sum_each = 0.0, ave_each[3] = { 0.0 };
double MAX, MAX_each;
double MAX_each_arr[3] = { 0 };
//for循环中循环参数在各循环前定义

int main()
{

	//输入一个3行，5列的二维数组
	// printf("please input 15 nums:\n");
	// for (x = 0; x < 3; x++)
	// {
	// 	for (y = 0; y < 5; y++)
	// 	{
	// 		scanf("%lf", &arr[x][y]);
	// 	}
	// 	printf("\n");
	// }


	//计算15个数的平均值
	int x = 0, y = 0;
	for (x = 0; x < 3; x++)
	{
		for (y = 0; y < 5; y++)
		{
			sum += arr[x][y];
		}
		ave_all = sum / 15.0;
	}

	// 计算每组的平均值
	int m = 0, n = 0;
	int i = 0;
	for (m = 0 ; m < 3; m++)
	{
		sum_each = 0.0;
		for (n = 0; n < 5; n++)
		{
			sum_each += arr[m][n];
		}
	
			ave_each[i] = sum_each / 5.0;
			i++;
	
	}

	//15个数当中最大值
	int p = 0, q = 0;
	for (p = 0; p < 3 ; p++)
	{
		MAX = arr[0][0];
		for (q = 0; q < 5; q++)
		{
			if (arr[p][q] > MAX)
			{
				MAX = arr[p][q];
			}
			else if (arr[p][q] == MAX||arr[p][q]<MAX)
			{
				;
			}
		}
		
	}
	//每组当中最大值
	int u = 0, v = 0;
	int j = 0;
	for (u = 0; u < 3; u++)
	{
		
		for (v = 0; v < 5; v++)
		{
			MAX_each == arr[u][0];
			if (arr[u][v] > MAX_each)
			{
				MAX_each = arr[u][v];
			}
		}
		
			MAX_each_arr[j] = MAX_each;
			j++;
	
	}

	//输出各参数
	printf("The max of the 15 nums is %.1lf\n", MAX);

	for (int f = 0; f < 3; f++)
	{
		printf("The max of the each group  is %.1lf\n", MAX_each_arr[f]);
	}

	printf("The ave of the 15 nums is %.1lf\n", ave_all);//无bug

	for (int w = 0; w < 3; w++)
	{
		printf("The ave of the each group is %.1lf\n", ave_each[w]);//
	}
	 
	return 0;
}

///***14*****************************************************/

// #include"stdio.h"
// int main()
// {

// 	printg("test master in git with VS code");

// 	return 0;
// }
///***15*****************************************************/

// #include "stdio.h"

// int main()
// {

// 	return 0;

// }